﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using CapturarObjetos.Objetos;
using CapturarObjetos.Nucleo;

namespace CapturarObjetos.Fases
{
    class Fase_2
    {

        #region Atributos

        //Content, usado pra dar load nos gráficos
        ContentManager Content;

        // Objetos do cenário.
        ObjetoJogo energia, cilindro, chao;
        Jogador jogador;
        /// <summary>
        /// Lista de todos os objetos do game
        /// </summary>
        public List<ObjetoJogo> objetos = new List<ObjetoJogo>();

        public int numEnergias = 4;


        // Cameras utilizadas
        Camera camera;

        #endregion



        public Fase_2(ContentManager content, Camera camera, Jogador jogador)
        {
            this.Content = content;
            this.camera = camera;
            this.jogador = jogador;

            chao = new ObjetoJogo();
            chao.Modelo = Content.Load<Model>("chao");


            objetos.Add(chao);

            #region energias

            energia = new Energia(content, "energia");
            energia.Escala = 0.05f;
            energia.Posicao += new Vector3(-23, 0.0f, -20.0f);
            objetos.Add(energia);

            energia = new Energia(content, "energia");
            energia.Escala = 0.05f;
            energia.Posicao += new Vector3(-70.0f, 0.0f, -70.0f);
            objetos.Add(energia);

            energia = new Energia(content, "energia");
            energia.Escala = 0.05f;
            energia.Posicao += new Vector3(44.0f, 0.0f, 50.0f);
            objetos.Add(energia);

            energia = new Energia(content, "energia");
            energia.Escala = 0.05f;
            energia.Posicao += new Vector3(-2.0f, 0.0f, 52.0f);
            objetos.Add(energia);

            #endregion



            #region barreiras

            cilindro = new Barreira(content, "cilindro");
            cilindro.Escala = 0.55f;
            cilindro.Posicao += new Vector3(-15.0f, 0.0f, -10.0f);
            objetos.Add(cilindro);

            cilindro = new Barreira(content, "cilindro");
            cilindro.Escala = 0.55f;
            cilindro.Posicao += new Vector3(15.0f, 0.0f, 10.0f);
            objetos.Add(cilindro);

            cilindro = new Barreira(content, "cilindro");
            cilindro.Escala = 0.55f;
            cilindro.Posicao += new Vector3(20.0f, 0.0f, 33.0f);
            objetos.Add(cilindro);

            cilindro = new Barreira(content, "cilindro");
            cilindro.Escala = 0.55f;
            cilindro.Posicao += new Vector3(20.0f, 0.0f, -40.0f);
            objetos.Add(cilindro);

            #endregion

        }

        public void Update()
        {
            if (jogador.energias_coletadas > numEnergias)
            {
                Game1.fase_atual = Game1.Fases_Jogo.FASE_1;
                jogador.energias_coletadas = 0;
                jogador.movimentos = 0;

            }

        }

        public void Draw()
        {
            foreach (ObjetoJogo obj in objetos)
            {
                obj.Desenhar(camera);
            }
        }

    }
}
